Extracting and Implementing List Homomorphisms in Parallel Program Development
نویسنده
چکیده
Homomorphisms are functions that match the divide-and-conquer pattern and are widely used in parallel programming. Two problems are studied for homomorphisms on lists: (1) parallelism extraction: nding a homo-morphic representation of a given function; (2) parallelism implementation: deriving an eecient parallel program that computes the function. The proposed approach to parallelism extraction starts by writing two sequential programs for the function, on traditional cons lists and on dual snoc lists; the parallel program is obtained by generalizing sequential programs as terms. For almost-homomorphic functions, e.g., the maximum segment sum problem, our method provides a systematic embedding into a homomorphism. The implementation problem is addressed by introducing the class of distributable homomorphisms and deriving for them a common parallel program schema. The derivation is based on equa-tional reasoning in the Bird-Meertens formalism, which guarantees the correctness of the parallel target program. The approach is illustrated with the function scan (parallel preex), for which the combination of our two systematic methods yields the optimal hypercube algorithm, usually presented ad hoc in the literature.
منابع مشابه
Formal Derivation of Parallel Program for 2-Dimensional Maximum Segment Sum Problem
It has been attracting much attention to make use of list homomorphisms in parallel programming because they ideally suit the divide-and-conquer parallel paradigm. However, they have been usually treated rather informally and ad-hoc in the development of e cient parallel programs. This paper reports a case study on systematic and formal development of a new parallel program for the 2-dimensiona...
متن کاملList Homomorphism with Accumulation
This paper introduces accumulation into list homomorphisms for systematic development of both efficient and correct parallel programs. New parallelizable recursive pattern called H-homomorphism is given, and transformations from sequential patterns in the H-form and Hform into (H-)homomorphism are shown. We illustrate the power of our formalization by developing a novel and general parallel pro...
متن کاملSystematic Extraction and Implementation of Divide-and-Conquer Parallelism
Homomorphisms are functions that match the divide-and-conquer paradigm and thus can be computed in parallel. Two problems are studied for homomorphisms on lists: (1) parallelism extraction: nd-ing a homomorphic representation of a given function; (2) parallelism implementation: deriving an eecient parallel program that computes the function. A systematic approach to parallelism extraction proce...
متن کاملConstruction of List Homomorphisms by Tupling and Fusion
List homomorphisms are functions which can be e ciently computed in parallel since they ideally suit the divide-and-conquer paradigm. However, some interesting functions, e.g., the maximum segment sum problem, are not list homomorphisms. In this paper, we propose a systematic way of embedding them into list homomorphisms so that parallel programs are derived. We show, with an example, how a sim...
متن کاملParallel Programming, List Homomorphisms and the Maximum Segment Sum Problem
We review the use of the Bird-Meertens Formalism as a vehicle for the construction of programs with massive implicit parallelism. We show that a simple result from the theory, concerning the expression of list homomorph-isms, can help us in our search for parallel algorithms and demonstrate its application to some simple problems including the maximum segment sum problem. Our main purpose is to...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- Sci. Comput. Program.
دوره 33 شماره
صفحات -
تاریخ انتشار 1999